"""
关于对话框
"""

from PyQt5.QtWidgets import (
    QDialog, QVBoxLayout, QHBoxLayout, QLabel, QPushButton,
    QFrame, QScrollArea
)
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont, QPixmap

class AboutDialog(QDialog):
    """关于对话框"""
    
    def __init__(self, parent=None):
        super().__init__(parent)
        
        self.setWindowTitle("ℹ️ 关于系统")
        self.setFixedSize(500, 600)
        self.setModal(True)
        
        self.setup_ui()
        self.setup_style()
    
    def setup_ui(self):
        """设置用户界面"""
        layout = QVBoxLayout(self)
        layout.setContentsMargins(20, 20, 20, 20)
        layout.setSpacing(16)
        
        # 创建滚动区域
        scroll_area = QScrollArea()
        scroll_area.setWidgetResizable(True)
        scroll_area.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        
        # 内容容器
        content_widget = QWidget()
        content_layout = QVBoxLayout(content_widget)
        content_layout.setSpacing(16)
        
        # 应用图标和标题
        title_layout = QHBoxLayout()
        title_layout.setAlignment(Qt.AlignCenter)
        
        # 图标
        icon_label = QLabel("🏢")
        icon_label.setFont(QFont("Microsoft YaHei", 48))
        title_layout.addWidget(icon_label)
        
        content_layout.addLayout(title_layout)
        
        # 应用名称
        app_name = QLabel("资产与IP综合管理系统")
        app_name.setFont(QFont("Microsoft YaHei", 18, QFont.Bold))
        app_name.setAlignment(Qt.AlignCenter)
        app_name.setStyleSheet("color: #1976d2; margin: 10px 0;")
        content_layout.addWidget(app_name)
        
        # 版本信息
        version_info = QLabel("版本：v1.1")
        version_info.setFont(QFont("Microsoft YaHei", 10))
        version_info.setAlignment(Qt.AlignCenter)
        version_info.setStyleSheet("color: #666666;")
        content_layout.addWidget(version_info)
        
        # 分隔线
        separator = QFrame()
        separator.setFrameShape(QFrame.HLine)
        separator.setStyleSheet("color: #e0e0e0; margin: 10px 0;")
        content_layout.addWidget(separator)
        
        # 系统描述
        description = QLabel("""
        基于CS架构的Python桌面应用，用于统一管理单位内部IP地址、应用系统、设备资产、操作系统账号密码及中间件信息，支持数据可视化、关联查询，专为Windows单机环境设计。
        """)
        description.setFont(QFont("Microsoft YaHei", 9))
        description.setWordWrap(True)
        description.setStyleSheet("color: #333333; line-height: 1.5; margin: 10px 0;")
        description.setAlignment(Qt.AlignJustify)
        content_layout.addWidget(description)
        
        # 主要功能
        features_title = QLabel("🎯 主要功能")
        features_title.setFont(QFont("Microsoft YaHei", 11, QFont.Bold))
        features_title.setStyleSheet("color: #1976d2; margin: 10px 0 5px 0;")
        content_layout.addWidget(features_title)
        
        features = QLabel("""
        • 📚 字典管理 - 系统类型定义
        • 🖥️ 设备资产 - 硬件设备管理
        • 🌐 IP管理 - 网络地址分配
        • 🔐 账号管理 - 凭证信息管理
        • 🪟 操作系统 - 系统实例管理
        • 🏢 业务系统 - 应用系统管理
        • 🔧 中间件 - 服务组件管理
        • 🔌 带外管理 - 远程管理接口
        """)
        features.setFont(QFont("Microsoft YaHei", 9))
        features.setWordWrap(True)
        features.setStyleSheet("color: #333333; line-height: 1.5;")
        content_layout.addWidget(features)
        
        # 技术栈
        tech_title = QLabel("💻 技术栈")
        tech_title.setFont(QFont("Microsoft YaHei", 11, QFont.Bold))
        tech_title.setStyleSheet("color: #1976d2; margin: 10px 0 5px 0;")
        content_layout.addWidget(tech_title)
        
        tech_info = QLabel("""
        • 开发语言：Python 3.8+
        • GUI框架：PyQt5
        • 数据库：SQLite 3
        • ORM：SQLAlchemy 2.0
        • 加密：cryptography（AES-256）
        """)
        tech_info.setFont(QFont("Microsoft YaHei", 9))
        tech_info.setWordWrap(True)
        tech_info.setStyleSheet("color: #333333; line-height: 1.5;")
        content_layout.addWidget(tech_info)
        
        # 分隔线
        separator2 = QFrame()
        separator2.setFrameShape(QFrame.HLine)
        separator2.setStyleSheet("color: #e0e0e0; margin: 10px 0;")
        content_layout.addWidget(separator2)
        
        # 联系信息
        contact_title = QLabel("📧 联系信息")
        contact_title.setFont(QFont("Microsoft YaHei", 11, QFont.Bold))
        contact_title.setStyleSheet("color: #1976d2; margin: 10px 0 5px 0;")
        content_layout.addWidget(contact_title)
        
        contact_info = QLabel("""
        项目维护者：谢囧囧
        邮箱：viitii@qq.com
        """)
        contact_info.setFont(QFont("Microsoft YaHei", 9))
        contact_info.setStyleSheet("color: #333333; line-height: 1.5;")
        content_layout.addWidget(contact_info)
        
        # 版权信息
        copyright_info = QLabel("© 2025 资产与IP综合管理系统. 保留所有权利。")
        copyright_info.setFont(QFont("Microsoft YaHei", 8))
        copyright_info.setStyleSheet("color: #999999; margin: 20px 0;")
        copyright_info.setAlignment(Qt.AlignCenter)
        content_layout.addWidget(copyright_info)
        
        scroll_area.setWidget(content_widget)
        layout.addWidget(scroll_area)
        
        # 按钮区域
        button_layout = QHBoxLayout()
        button_layout.addStretch()
        
        ok_button = QPushButton("确定")
        ok_button.setFixedSize(80, 32)
        ok_button.clicked.connect(self.accept)
        button_layout.addWidget(ok_button)
        
        layout.addLayout(button_layout)
    
    def setup_style(self):
        """设置样式"""
        self.setStyleSheet("""
            QDialog {
                background-color: #ffffff;
            }
            QPushButton {
                background-color: #1976d2;
                color: white;
                border: none;
                border-radius: 4px;
                font-weight: bold;
            }
            QPushButton:hover {
                background-color: #1565c0;
            }
            QPushButton:pressed {
                background-color: #0d47a1;
            }
            QScrollArea {
                border: 1px solid #e0e0e0;
                border-radius: 4px;
                background-color: #ffffff;
            }
        """)